The background description provided herein is for the purpose of generally presenting the context of the disclosure. Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Internet of Things (IoT) is booming Huge volumes of IoT sensors, controllers and smart meters being deployed are typically designed with very limited resources in terms of memory and flash space for applications to run. For example, most edge devices have less than 1 MB of total memory.
In particular, there is a strong demand to run Java® applications on these devices for the cross-platform application portability and the massive Java® developer base. However, standard Java® Virtual Machine (JVM) class libraries are normally too big to fit into the tiny IoT devices. For example, a standard JVM runtime usually contains a large library, such as the OpenJDK library of Java 7, which contains 4024 application programming interfaces (APIs) and takes about 80 MB of storage.
A typical solution to address this problem is to create a small version of Java® by reducing the functionality of the Java® class library, such as Oracle's JavaCard and J2ME. However, such an approach sacrifices functionalities and destroys compatibility with desktop and server Java® applications.